<?php
/**
 * User: YL
 * Date: 2019/09/12
 */

namespace restful\utils;

class Signature
{
    /**
     * 签名数据
     * @param array $data
     * @param string $key
     * @return string
     */
    public static function sign(array $data, string $key)
    {
        ksort($data);

        return md5($key . http_build_query($data, null, '&', PHP_QUERY_RFC3986) . $key);
    }

    /**
     * 验证签名
     * @param string $sign
     * @param array $data
     * @param string $key
     * @return bool
     */
    public static function verify(string $sign, array $data, string $key)
    {
        return $sign === static::sign($data, $key);
    }
}
